Optimal Global Instruction Scheduling Using Enumeration

نویسندگان

  • GHASSAN OMAR SHOBAKI
  • Charles Martel
  • Zhendong Su
  • Ghassan Omar Shobaki
چکیده

Instruction scheduling is one of the most important compiler optimizations. An instruction scheduler reorders instructions to improve performance by minimizing pipeline stalls. Traditional approaches to instruction scheduling were based on heuristics. Over the past decade, however, a number of researchers have proposed optimal solutions to instruction scheduling. This dissertation presents the first set of algorithms to optimally schedule two global instruction scheduling regions: traces and superblocks. A global scheduling region is a collection of basic blocks that a compiler schedules simultaneously to exploit instruction-level parallelism (ILP) across basic block boundaries. Several heuristic techniques have been proposed for scheduling traces and superblocks, but the precision of these heuristics has not been studied relative to optimality. Optimality in this dissertation is defined as minimizing the expected schedule length, which is the weighted sum of schedule lengths across all code paths in the scheduling region. Optimal instruction scheduling is known to be NP-hard. So, the optimal algorithms proposed in this work use branch-and-bound enumeration with a number of novel pruning techniques to efficiently explore the entire solution space within reasonable time. Experimental evaluation of the proposed algorithms shows that, within a per-problem time limit of one second, 93% of the hard traces and 99% of the hard superblocks in the SPEC int2000 benchmarks are scheduled optimally. 87% of the optimally scheduled hard traces and 83% of the optimally scheduled hard superblocks in those benchmarks have improved schedules compared to typical heuristic schedules.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Constraint Programming Techniques for Optimal Instruction Scheduling

Modern processors have multiple pipelined functional units and can issue more than one instruction per clock cycle. This puts great pressure on the instruction scheduling phase in a compiler to expose maximum instruction level parallelism. Basic blocks and superblocks are commonly used regions of code in a program for instruction scheduling. Instruction scheduling coupled with register allocati...

متن کامل

Code Generation for Custom Architectures using Constraint Programming

As custom multicore architectures become more and more common for DSP applications, instruction selection and scheduling for such applications and architectures become important topics. In this paper, we explore the effects of defining the problem of finding an optimal instruction selection and scheduling as a constraint satisfaction problem (CSP). We incorporate methods based on sub-graph isom...

متن کامل

Register Allocation Instruction Scheduling A New Approach

Instruction scheduling and register allocation are two very In this paper, we solve register allocation and instruction scheduling simultaneously using integer linear programming (ILP). theform ulation?a new ???v ariableU has taken several approaches, including: branch-andbound enumeration (5) (13). more expensive register spill and reload instructions in the program. Eager code This thesis dev...

متن کامل

Instruction Scheduling Using MAX −MIN Ant Colony Optimization

Instruction scheduling is a fundamental step for a mapping an application to a computational device. It takes a behavioral application specification and produces a schedule for the instructions onto a collection of system processing units. The objective is to minimize the completion time of the given application while effectively utilizing the computational resources. The instruction scheduling...

متن کامل

Optimal and Heuristic Global Code Motion for Minimal Spilling

The interaction of register allocation and instruction scheduling is a well-studied problem: Certain ways of arranging instructions within basic blocks reduce overlaps of live ranges, leading to the insertion of less costly spill code. However, there is little previous research on the extension of this problem to global code motion, i .e., the motion of instructions between blocks. We present a...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1991